package com.blue.base.demo.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 菜单表
 *
 * @author liulei
 * @version 1.0
 */
@ApiModel("返回实体")
@Data
public class MenuVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty("主键id")
    private Long menuId;
    /**
     * 菜单编号
     */
    @ApiModelProperty("菜单编号")
    private String code;
    /**
     * 菜单父ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty("菜单父ID")
    private Long pid;
    /**
     * 菜单父编号
     */
    @ApiModelProperty("菜单父编号")
    private String pcode;
    /**
     * 菜单名称
     */
    @ApiModelProperty("菜单名称")
    private String name;
    /**
     * 菜单图标
     */
    @ApiModelProperty("菜单图标")
    private String icon;
    /**
     * url地址
     */
    @ApiModelProperty("url地址")
    private String url;
    /**
     * 菜单排序号
     */
    @ApiModelProperty("菜单排序号")
    private Integer sort;
    /**
     * 菜单层级
     */
    @ApiModelProperty("菜单层级")
    private Integer levels;
    /**
     * 是否是菜单(字典)
     */
    @ApiModelProperty("是否是菜单")
    private String menuFlag;
    /**
     * 描述
     */
    @ApiModelProperty("描述")
    private String description;
    /**
     * 菜单状态
     */
    @ApiModelProperty("菜单状态")
    private String status;
    /**
     * 子节点
     */
    @ApiModelProperty(value = "子节点", example = "子节点")
    private List<MenuVo> children;

}
